package Entita;

import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints.Key;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;

import javax.imageio.ImageIO;
import javax.swing.DefaultComboBoxModel;
import javax.swing.Icon;
import javax.swing.ImageIcon;

import java.awt.RenderingHints;

import GUI.Inserimento;

public class Tavola {
	
	static final String urlTavola1="Tavole/test_1.png";
	static final String urlTavola2="Tavole/test_2.png";
	static final String urlTavola3="Tavole/test_3.png";
	static final String urlTavola4="Tavole/test_4.png";
	static final String urlTavola5="Tavole/test_5.png";
	static final String urlTavola6="Tavole/test_6.png";
	static final String urlTavola7="Tavole/test_7.png";
	static final String urlTavola8="Tavole/test_8.png";
	static final String urlTavola9="Tavole/test_9.png";
	static final String urlTavola10="Tavole/test_10.png";
	static final String urlTavola1Loc="Tavole/test_1_Loc.png";
	static final String urlTavola2Loc="Tavole/test_2_Loc.png";
	static final String urlTavola3Loc="Tavole/test_3_Loc.png";
	static final String urlTavola4Loc="Tavole/test_4_Loc.png";
	static final String urlTavola5Loc="Tavole/test_5_Loc.png";
	static final String urlTavola6Loc="Tavole/test_6_Loc.png";
	static final String urlTavola7Loc="Tavole/test_7_Loc.png";
	static final String urlTavola8Loc="Tavole/test_8_Loc.png";
	static final String urlTavola9Loc="Tavole/test_9_Loc.png";
	static final String urlTavola10Loc="Tavole/test_10_Loc.png";
	static final String urlTavola1LocIcona="Tavole/test_1_Loc_icon.png";
	static final String urlTavola2LocIcona="Tavole/test_2_Loc_icon.png";
	static final String urlTavola3LocIcona="Tavole/test_3_Loc_icon.png";
	static final String urlTavola4LocIcona="Tavole/test_4_Loc_icon.png";
	static final String urlTavola5LocIcona="Tavole/test_5_Loc_icon.png";
	static final String urlTavola6LocIcona="Tavole/test_6_Loc_icon.png";
	static final String urlTavola7LocIcona="Tavole/test_7_Loc_icon.png";
	static final String urlTavola8LocIcona="Tavole/test_8_Loc_icon.png";
	static final String urlTavola9LocIcona="Tavole/test_9_Loc_icon.png";
	static final String urlTavola10LocIcona="Tavole/test_10_Loc_icon.png";
	
	public static Tavola TAVOLA1(){
		ArrayList<AreaLocalizzazione> localizzazioni= new ArrayList<AreaLocalizzazione>();
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE1_1());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE1_2());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE1_3());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE1_4());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE1_5());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE1_6());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE1_7());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE1_8());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE1_9());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE1_10());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE1_11());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE1_12());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE1_13());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE1_14());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE1_15());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE1_16());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE1_17());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE1_18());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE1_19());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE1_20());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE1_21());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE1_22());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE1_23());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE1_24());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE1_25());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE1_26());
		DefaultComboBoxModel choc=new DefaultComboBoxModel(new String[] {"", "NE", "AV", "BU", "CT", "SX"});
		return new Tavola(1,"I",false,createImage(urlTavola1),createImage(urlTavola1Loc),createImage(urlTavola1LocIcona),localizzazioni,choc,false,false,false,false,false,26);
	}
	public static Tavola TAVOLA2(){		
		ArrayList<AreaLocalizzazione> localizzazioni= new ArrayList<AreaLocalizzazione>();
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE2_1());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE2_1P1());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE2_2());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE2_3());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE2_4());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE2_5());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE2_6());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE2_7());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE2_8());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE2_9());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE2_10());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE2_11());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE2_12());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE2_13());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE2_14());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE2_15());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE2_16());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE2_17());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE2_18());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE2_19());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE2_20());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE2_21());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE2_22());
		DefaultComboBoxModel choc=new DefaultComboBoxModel(new String[] {"", "RO", "CO", "BU", "NE", "CT", "SX"});
		return new Tavola(2,"II",true,createImage(urlTavola2),createImage(urlTavola2Loc),createImage(urlTavola2LocIcona),localizzazioni,choc,false,true,false,true,false,23);
	}
	public static Tavola TAVOLA3(){
		ArrayList<AreaLocalizzazione> localizzazioni= new ArrayList<AreaLocalizzazione>();
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE3_1());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE3_2());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE3_3());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE3_4());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE3_5());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE3_6());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE3_7());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE3_8());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE3_9());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE3_10());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE3_11());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE3_12());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE3_13());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE3_14());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE3_15());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE3_16());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE3_17());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE3_18());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE3_19());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE3_20());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE3_21());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE3_22());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE3_23());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE3_24());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE3_25());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE3_26());	
		DefaultComboBoxModel choc=new DefaultComboBoxModel(new String[] {"", "RO", "IS", "CI", "CO", "VU", "CT", "SX"});
		return new Tavola(3,"III",true,createImage(urlTavola3),createImage(urlTavola3Loc),createImage(urlTavola3LocIcona),localizzazioni,choc,true,true,false,true,false,26);
	}
	public static Tavola TAVOLA4(){
		ArrayList<AreaLocalizzazione> localizzazioni=new ArrayList<AreaLocalizzazione>();
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE4_1());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE4_2());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE4_3());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE4_4());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE4_5());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE4_6());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE4_7());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE4_8());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE4_9());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE4_10());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE4_11());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE4_12());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE4_13());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE4_14());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE4_15());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE4_16());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE4_17());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE4_18());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE4_19());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE4_20());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE4_21());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE4_22());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE4_23());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE4_24());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE4_25());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE4_26());	
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE4_27());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE4_28());
		DefaultComboBoxModel choc=new DefaultComboBoxModel(new String[] {"", "NE", "CT", "BU", "SX"});
		return new Tavola(4,"IV",false,createImage(urlTavola4),createImage(urlTavola4Loc),createImage(urlTavola4LocIcona),localizzazioni,choc,false,false,false,true,false,28);
	}
	public static Tavola TAVOLA5(){
		ArrayList<AreaLocalizzazione> localizzazioni=new ArrayList<AreaLocalizzazione>();
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE5_1());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE5_2());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE5_3());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE5_4());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE5_5());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE5_6());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE5_7());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE5_8());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE5_9());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE5_10());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE5_11());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE5_12());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE5_13());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE5_14());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE5_15());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE5_16());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE5_17());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE5_18());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE5_19());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE5_20());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE5_21());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE5_22());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE5_23());
		DefaultComboBoxModel choc=new DefaultComboBoxModel(new String[] {"", "NE", "RE", "SX", "CT"});
		return new Tavola(5,"V",false,createImage(urlTavola5),createImage(urlTavola5Loc),createImage(urlTavola5LocIcona),localizzazioni,choc,true,false,false,true,false,23);
	}
	public static Tavola TAVOLA6(){		
		ArrayList<AreaLocalizzazione> localizzazioni=new ArrayList<AreaLocalizzazione>();
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE6_1());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE6_2());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE6_3());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE6_4());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE6_5());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE6_6());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE6_7());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE6_8());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE6_9());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE6_10());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE6_11());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE6_12());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE6_13());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE6_14());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE6_15());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE6_16());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE6_17());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE6_18());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE6_19());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE6_20());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE6_21());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE6_22());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE6_23());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE6_24());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE6_25());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE6_26());	
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE6_27());
		DefaultComboBoxModel choc=new DefaultComboBoxModel(new String[] {"", "SX", "NE", "CT"});
		return new Tavola(6,"VI",false,createImage(urlTavola6),createImage(urlTavola6Loc),createImage(urlTavola6LocIcona),localizzazioni,choc,false,false,false,false,true,27);
	}
	public static Tavola TAVOLA7(){
		ArrayList<AreaLocalizzazione> localizzazioni=new ArrayList<AreaLocalizzazione>();
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE7_1());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE7_2());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE7_3());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE7_4());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE7_5());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE7_6());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE7_7());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE7_8());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE7_9());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE7_10());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE7_11());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE7_12());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE7_13());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE7_14());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE7_15());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE7_16());
		DefaultComboBoxModel choc=new DefaultComboBoxModel(new String[] {"", "VU", "NE", "SX", "CT"});
		return new Tavola(7,"VII",false,createImage(urlTavola7),createImage(urlTavola7Loc),createImage(urlTavola7LocIcona),localizzazioni,choc,false,false,false,false,true,16);
	}
	public static Tavola TAVOLA8(){
		ArrayList<AreaLocalizzazione> localizzazioni=new ArrayList<AreaLocalizzazione>();
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE8_1());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE8_2());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE8_3());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE8_4());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE8_5());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE8_6());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE8_7());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE8_8());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE8_9());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE8_10());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE8_11());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE8_12());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE8_13());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE8_14());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE8_15());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE8_16());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE8_17());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE8_18());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE8_19());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE8_20());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE8_21());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE8_22());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE8_23());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE8_24());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE8_25());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE8_26());	
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE8_27());
		DefaultComboBoxModel choc=new DefaultComboBoxModel(new String[] {"", "CO", "RO", "SX", "CT"});
		return new Tavola(8,"VIII",true,createImage(urlTavola8),createImage(urlTavola8Loc),createImage(urlTavola8LocIcona),localizzazioni,choc,true,false,true,false,true,27);
	}
	public static Tavola TAVOLA9(){
		ArrayList<AreaLocalizzazione> localizzazioni=new ArrayList<AreaLocalizzazione>();
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_1());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_1P1());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_2());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_2P2());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_3());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_4());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_5());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_6());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_7());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_8());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_9());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_10());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_11());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_12());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_13());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_14());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_15());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_16());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_17());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_18());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_19());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_20());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_21());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_22());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_23());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_24());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_25());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_26());	
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_27());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_28());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_29());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_30());	
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_31());	
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_32());	
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_33());	
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_34());	
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_35());	
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_36());	
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_37());	
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_38());	
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE9_39());	
		DefaultComboBoxModel choc=new DefaultComboBoxModel(new String[] {"", "CO", "VU", "BU", "RO", "SX", "CT"});
		return new Tavola(9,"IX",true,createImage(urlTavola9),createImage(urlTavola9Loc),createImage(urlTavola9LocIcona),localizzazioni,choc,false,false,true,false,true,41);
	}
	public static Tavola TAVOLA10(){
		ArrayList<AreaLocalizzazione> localizzazioni=new ArrayList<AreaLocalizzazione>();
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_1());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_2());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_3());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_4());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_5());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_6());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_7());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_8());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_9());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_10());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_11());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_12());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_13());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_14());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_15());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_16());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_17());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_18());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_19());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_20());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_21());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_22());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_23());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_24());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_25());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_26());	
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_27());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_28());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_29());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_30());	
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_31());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_32());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_33());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_34());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_35());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_36());	
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_37());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_38());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_39());
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_40());	
		//localizzazioni.add(AreaLocalizzazione.LOCALIZZAZIONE10_41());
		DefaultComboBoxModel choc=new DefaultComboBoxModel(new String[] {"", "CO", "DI", "VU", "RO", "SX", "CT"});
		return new Tavola(10,"X",true,createImage(urlTavola10),createImage(urlTavola10Loc),createImage(urlTavola10LocIcona),localizzazioni,choc,true,false,true,false,false,41);
	}

	public static Tavola createTavola(int numeroTavola){
		switch (numeroTavola) {
		case 1:
			return TAVOLA1();
			
		case 2:
			return TAVOLA2();
			
		case 3:
			return TAVOLA3();
			
		case 4:
			return TAVOLA4();
			
		case 5:
			return TAVOLA5();
			
		case 6:
			return TAVOLA6();
			
		case 7:
			return TAVOLA7();
			
		case 8:
			return TAVOLA8();
			
		case 9:
			return TAVOLA9();
			
		case 10:
			return TAVOLA10();
			
		default:
			return null;
		}
	}
	/** Returns an ImageIcon, or null if the path was invalid. */
    protected static Image createImage(String path) {
        java.net.URL imgURL = Tavola.class.getResource(path);
        if (imgURL != null) {
            try {
				return ImageIO.read(imgURL.openStream());
			} catch (IOException e) {
				// TODO Auto-generated catch block
				System.err.println(e.getMessage()+ " on "+ path);
				return null;
			}
        } else {
            System.err.println("Couldn't find file: " + path);
            return null;
        }
    }
    
    private static Icon resizeImage(Image originalImage){
    	BufferedImage image=(BufferedImage)originalImage;
    	int type = image.getType() == 0? BufferedImage.TYPE_INT_ARGB : image.getType();
    	BufferedImage resizedImage = new BufferedImage(50, 35, type);
    	Graphics2D g = resizedImage.createGraphics();
    	g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BICUBIC);
		g.drawImage(image, 0, 0, 50, 35, null);
    	g.dispose();
    	
    	return new ImageIcon(resizedImage);
        }
    
    private int ID;
    private Image immagine;	
    private Image immagineLocalizzazione;	
    private Icon icona;
    private Image iconaLocalizzazione;
    private String nome;
	private ArrayList<AreaLocalizzazione> localizzazioni;
    private boolean colore;
    private boolean rossa;
    private boolean policromatica;
    private DefaultComboBoxModel modelloChoc;
    private File statistiche;
    private boolean indiceRealta;
    private boolean primaMeta;
    private boolean secondaMeta;
    private int numeroLocalizzazioni;
    
    
	public Tavola(int numeroTavola,String nome,boolean colore,Image immagine,Image immagineLocalizzazione, Image iconaLocalizzazione, ArrayList<AreaLocalizzazione> localizzazioni, DefaultComboBoxModel modelloChoc,boolean indiceRealta,boolean rossa,boolean policromatica,boolean primaMeta,boolean secondaMeta,int numeroLocalizzazioni){
    	this.ID=numeroTavola;
    	this.immagine=immagine;
    	this.immagineLocalizzazione=immagineLocalizzazione;
    	this.nome=nome;
    	this.localizzazioni=localizzazioni;
    	this.colore=colore;
    	this.icona=resizeImage(immagine);
    	this.iconaLocalizzazione=iconaLocalizzazione;
    	this.modelloChoc=modelloChoc;
    	this.indiceRealta=indiceRealta;
    	this.rossa=rossa;
    	this.policromatica=policromatica;
    	this.primaMeta=primaMeta;
    	this.secondaMeta=secondaMeta;
    	this.numeroLocalizzazioni=numeroLocalizzazioni;
    }
    public Tavola(int numeroTavola,String nome,boolean colore,Image immagine,Image immagineLocalizzazione, Image iconaLocalizzazione){
    	this(numeroTavola,nome,colore,immagine, immagineLocalizzazione,iconaLocalizzazione,new ArrayList<AreaLocalizzazione>(),new DefaultComboBoxModel(new String[] {""}),false,false,false,false,false,0);
    }
    public Tavola(int numeroTavola,String nome,boolean colore){
    	this(numeroTavola,nome,colore,null,null,null,new ArrayList<AreaLocalizzazione>(),new DefaultComboBoxModel(new String[] {""}),false,false,false,false,false,0);
    }
    
    public int getID() {
		return ID;
	}
	public boolean isColore(){
    	return colore;
    }
    
	public boolean isRossa(){
    	return rossa;
    }
    
	public boolean isPolicromatica(){
    	return policromatica;
    }
    
    public Image getImagine(){
    	return immagine;
    }
    
    public Image getImmagineLocalizzazione() {
		return immagineLocalizzazione;
	}
	public AreaLocalizzazione getLocalizzazione(int numero){
    	if (localizzazioni.isEmpty())
    		return null;
    	else
    		return localizzazioni.get(numero);
    			
    }
    
    public ArrayList<AreaLocalizzazione> getLocalizzazioni(){
    	return localizzazioni;
    			
    }
    
    public int getNumeroLocalizzazioni(){
    	return numeroLocalizzazioni;
    }
	

    public Icon getIcona() {
 		return icona;
 	}
 	public void setIcona(Icon icona) {
 		this.icona = icona;
 	}
 	
	public Image getIconaLocalizzazione() {
		return iconaLocalizzazione;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	
	@Override
	public String toString() {
		return "Tavola " + nome;
	}

	public DefaultComboBoxModel getModelloChoc() {
		return modelloChoc;
	}
	public File getStatistiche() {
		return statistiche;
	}
	public void setStatistiche(File statistiche) {
		this.statistiche = statistiche;
	}
	public boolean isIndiceRealta() {
		return indiceRealta;
	}
	public boolean isPrimaMeta() {
		return primaMeta;
	}
	public boolean isSecondaMeta() {
		return secondaMeta;
	}
}
